Network communication has become indispensable to the efficient transmission of data. As the Internet has gained prevalence in homes and businesses, various protocols have arisen to merge telephone, video and other data types onto full service networks. These networks can use aggregate devices, such as routers, to separate data traffic of various types into different queues. Thus, data from many source devices, such as Voice over Internet Protocol (VoIP) phones, Internet Protocol television (IPTV) devices, and Internet websites, all reach their intended destinations while traveling over the same network.
The volume of data traffic on full service networks can lead to congestion and cause network performance to deteriorate. As queues get filled up, packets are dropped in a process referred to as “tail drop.” Tail drop can be inefficient because all the packets in the queue are treated with equal preference. Thus, data flows that require large amounts of bandwidth can often be maintained at the expense of more numerous smaller data flows. While this process may relieve some network congestion, it often decreases network performance for the majority of users on the network.
Some methods, such as random early detect (RED), statistically drop packets from flows before a network reaches a hard limit. This approach assumes that the majority of data flows are based on transmission control protocol (TCP), which adjusts its throughput based on dropped packets. Newer applications, such as IPTV, are based on user datagram protocol (UDP) and require the application layer to request retransmission. This produces higher processor and memory utilization at the network and still may result in poor performance. Additionally, the process penalizes short-lived small data flows, while constant flows that are more bandwidth intensive receive more favorable treatment.